package com.innovations.inn.mapper;

import com.innovations.inn.domain.ValueSet;
import com.innovations.inn.domain.request.RequestValueSetInfo;
import com.innovations.inn.domain.response.ResponseValueSetInfoCount;
import java.util.List;

/**
 * 字典明细Mapper接口
 *
 * @author dp
 * @date 2024-11-01
 */
public interface ValueSetMapper {
    /**
     * 查询字典明细
     *
     * @param valueId 字典明细主键
     * @return 字典明细
     */
    ValueSet selectValueSetByValueId(Long valueId);

    /**
     * 查询字典明细列表
     *
     * @param valueSet 字典明细
     * @return 字典明细集合
     */
    List<ValueSet> selectValueSetList(ValueSet valueSet);

    /**
     * 查询字典分类对应明细计数
     *
     * @param codeSystemNo 字典分类
     * @return 字典分类计数集合
     */
    List<ResponseValueSetInfoCount> selectCodeSystemListValueCount(String codeSystemNo);

    /**
     * 查询字典分类对应明细计数
     *
     * @param codeSystemNo 字典分类
     * @return 字典分类计数集合
     */
    List<ResponseValueSetInfoCount> selectCodeSystemListValueCountTime(String codeSystemNo);

    /**
     * 新增字典明细
     *
     * @param valueSet 字典明细
     * @return 结果
     */
    int insertValueSet(ValueSet valueSet);

    /**
     * 修改字典明细
     *
     * @param valueSet 字典明细
     * @return 结果
     */
    int updateValueSet(ValueSet valueSet);

    /**
     * 删除字典明细
     *
     * @param valueId 字典明细主键
     * @return 结果
     */
    int deleteValueSetByValueId(Long valueId);

    /**
     * 批量删除字典明细
     *
     * @param valueIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteValueSetByValueIds(Long[] valueIds);

    /**
     * 根据字典明细扩展查询字典数据
     *
     * @param requestValueSetInfo 字典明细扩展
     * @return 字典明细扩展
     */
    List<RequestValueSetInfo> selectValueSetInfo(RequestValueSetInfo requestValueSetInfo);

}
